package com.itany.corejava.code08_常用类.string;

import java.util.Arrays;

/**
 * @author 石小俊
 * @version 1.0
 * @date 2023年03月15日 15:43
 */
public class Test06_正则表达式 {
    public static void main(String[] args) {
        // 指定的字符串中是否只有一个a
        System.out.println("a".matches("a"));
        // 指定的字符串中是3个a
        System.out.println("aaa".matches("a{3}"));
        // 至少2个a
        System.out.println("aaa".matches("a{2,}"));
        // 3-5个a
        System.out.println("aaaaaa".matches("a{3,5}"));
        // 0-3个a,可以是空字符串
        System.out.println("".matches("a{0,3}"));
        // 0-1个a
        System.out.println("".matches("a?"));
        // 0或多个a
        System.out.println("".matches("a*"));
        // 1或多个a
        System.out.println("".matches("a+"));
        // 匹配a-g
        System.out.println("a".matches("[a-g]"));
        // 0或多次a-g
        System.out.println("abcdefg".matches("[a-g]*"));
        // 匹配所有小写英文字母
        System.out.println("Abcdefgh".matches("[a-z]*"));
        // 匹配所有英文字母
        System.out.println("Abcdefgh".matches("[a-zA-Z]*"));
        // 匹配所有英文字母与数字
        System.out.println("asda123".matches("[a-zA-Z0-9]*"));
        System.out.println("123abc".matches("[123abc]*"));
        // 匹配任意字符
        System.out.println("asd211dsa!@#$%^".matches(".*"));
        System.out.println("asd211dsa!@#$%^".matches("\\.*"));
        // 匹配所有数字
        System.out.println("12345".matches("\\d*"));
        // 匹配所有非数字
        System.out.println("asd#@!".matches("\\D*"));
        // 匹配英文字母、数字、下划线
        System.out.println("123asd_asd".matches("\\w*"));
        // 匹配除了英文字母、数字、下划线以外的
        System.out.println("@!#!#".matches("\\W*"));
        // 匹配空格
        System.out.println("    ".matches("\\s*"));
        System.out.println("1231ase".matches("\\S*"));
        // 匹配a或者b
        System.out.println("b".matches("a|b"));
        // 匹配3或者5位数字
        System.out.println("1234".matches("\\d{3}|\\d{5}"));
        System.out.println("1234".matches("\\d{3}(\\d{2})?"));

        System.out.println("******************replaceAll******************");
        // 将所有的数字位置使用-替换
        System.out.println("hello123world123i123am123admin".replaceAll("\\d","-"));
        // 将所有连续的2个数字使用-替换,如果数字是奇数个,则替换先匹配到的
        System.out.println("hello123world123i123am123admin".replaceAll("\\d{2}","-"));
        System.out.println("******************replaceFirst******************");
        // 替换第一个匹配到的
        System.out.println("hello123world123i123am123admin".replaceFirst("\\d{2}","-"));

        System.out.println("******************split******************");
        String s = "hello123world!i__am@admin";
        String[] arr = s.split("[0-9!_@]+");
        System.out.println(Arrays.toString(arr));

    }
}
